﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using TSC_Printer;

namespace GK.WCS.Open
{
    public class GKtsc
    {
        static String PrinterName;
        static GKtsc()
        {
            PrinterName = ConfigurationManager.AppSettings["PrinterName"].ToString();
        }

        public static void openportExt()
        {
            TSCLIB_DLL.openport(PrinterName);//找打打印机端口
            TSCLIB_DLL.sendcommand("SIZE 30 mm,30 mm");//设置条码大小
            TSCLIB_DLL.sendcommand("GAP 2 mm,0");//设置条码间隙
            TSCLIB_DLL.sendcommand("SPEED 4");//设置打印速度
            TSCLIB_DLL.sendcommand("DENSITY 7");//设置墨汁浓度
            TSCLIB_DLL.sendcommand("DERECTION 1");//设置相对起点
            TSCLIB_DLL.sendcommand("REFERENCE 3 mm,3 mm");//设置偏移边框
            TSCLIB_DLL.sendcommand("CLS");//清除记忆（每次打印新的条码时先清除上一次的打印记忆）
        }

        public static void next()
        {

            TSCLIB_DLL.sendcommand("CLS");//清除记忆（每次打印新的条码时先清除上一次的打印记忆）
        }

        /*
         * 
         * 
         *  #region 请求sendcommand指令,打印二维码
           //功能：繪製QRCODE二維條碼
           //語法：
           //QRCODE X, Y, ECC Level, cell width, mode, rotation, [model, mask,]"Data string”
           //參數說明
           //X QRCODE條碼左上角X座標
           //Y QRCODE條碼左上角Y座標
           //ECC level 錯誤糾正能力等級
           //L 7%
           //M 15%
           //Q 25%
           //H 30%
           //cell width    1~10
           //mode  自動生成編碼/手動生成編碼
           //A Auto
           //M Manual
           //rotation  順時針旋轉角度
           //0 不旋轉
           //90    順時針旋轉90度
           //180   順時針旋轉180度
           //270   順時針旋轉270度
           //model 條碼生成樣式
           //1 (預設), 原始版本
           //2 擴大版本
           //mask  範圍：0~8，預設7
           //Data string   條碼資料內容
         */
        public static void printVehicleCode( string Code)
        {

        
            TSCLIB_DLL.sendcommand("CLS");//需要清除上一次的打印记忆
            TSCLIB_DLL.sendcommand("QRCODE 30,50,L,8,A,0,M2,S7,\"" + Code + "\"");
            TSCLIB_DLL.windowsfont(200, 40, 24, 180, 0, 0, "黑体", "" + Code);
            TSCLIB_DLL.printlabel("1", "1");
        }
  
        public static void openport1V()
        {
            TSCLIB_DLL.openport(PrinterName);//找打打印机端口
            TSCLIB_DLL.sendcommand("SIZE 30 mm,40 mm");//设置条码大小
            TSCLIB_DLL.sendcommand("GAP 2 mm,0");//设置条码间隙
            TSCLIB_DLL.sendcommand("SPEED 1");//设置打印速度
            TSCLIB_DLL.sendcommand("DENSITY 7");//设置墨汁浓度
            TSCLIB_DLL.sendcommand("DERECTION 1");//设置相对起点
            TSCLIB_DLL.sendcommand("REFERENCE 3 mm,3 mm");//设置偏移边框
            TSCLIB_DLL.sendcommand("CLS");//清除记忆（每次打印新的条码时先清除上一次的打印记忆）
        }
        //打印一维码
        public static void printFinanceCode(String value)
        {

            TSCLIB_DLL.sendcommand("CLS");//需要清除上一次的打印记忆
            TSCLIB_DLL.barcode("210", "20", "128", "160", "2", "90", "5", "1", value);
            TSCLIB_DLL.printlabel("1", "1");

            //for(int i = value; i < value+21; i++)
            //   {
            //       TSCLIB_DLL.sendcommand("CLS");//需要清除上一次的打印记忆
            //       TSCLIB_DLL.barcode("40", "100", "128", "320", "1", "0", "6", "1", i.ToString());
            //       //TSCLIB_DLL.windowsfont(440, 35, 24, 180, 0, 0, "黑体", value);
            //       TSCLIB_DLL.printlabel("1", "1");
            //   }


        }
        //关闭打印机端口
        public static void closeportExt()
        {
            TSCLIB_DLL.closeport();
        }
    }
}
